#ifndef VIDEO_TYPES_H
#define VIDEO_TYPES_H

namespace Cvekas {

/// Handle of Effect parameter
typedef D3DXHANDLE ParamHandle;
/// Handle of Effect technique
typedef D3DXHANDLE TechniqueHandle;

/// Pointer type for IDirect3D9 interface
typedef boost::intrusive_ptr<IDirect3D9> D3DPtr;
/// Pointer type for IDirect3DDevice9 interface
typedef boost::intrusive_ptr<IDirect3DDevice9> D3DDevicePtr;

/// Represents locked texture
struct LockedTexture
{
	/// Texture pitch in bytes.
	/// Note that this isn't size of locked data! You must calculate it yourself if needed. 
	int pitch;
	/// Pointer to loced data
	void* data;
};

/// Represents locked gpu buffer
struct LockedBuffer
{
	/// Size of buffer in bytes
	int size;
	/// Pointer to locked data
	void* data;
};

} // namespace

#endif